/**
 * @type {String}
 *
 * @properties={typeid:35,uuid:"E016BF76-1587-42CE-90E9-36532C16CB66"}
 */
var fTexto = null;



/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"1C9AE77E-D51B-4CAF-85B8-77759626BE68"}
 * @AllowToRunInFind
 */
function generar(event) {
	databaseManager.setAutoSave(false)
	var $sql 	= 'SELECT ejercicio_id, fecha_inicio FROM ejercicios WHERE fecha_inicio = ? AND empresa = ?'
	var $args 	= [new Date(gejercicio_to_ejercicios.fecha_fin.getFullYear(),gejercicio_to_ejercicios.fecha_fin.getMonth(),gejercicio_to_ejercicios.fecha_fin.getDate()+1), globals.gUservID]
	var $ejs	= databaseManager.getDataSetByQuery('contable',$sql,$args,-1)
	if ($ejs.getMaxRowIndex() == 0)
	{
		globals.DIALOGS.showWarningDialog('Aviso','No se encontró el ejercicio del asiento de apertura','OK')
		return
	}
	var vAño = $ejs.getValue(1,2).getFullYear()
	var vMes = $ejs.getValue(1,2).getMonth()+1
	/** @type {JSFoundSet<db:/contable/numcon>}*/ 
	var fs_numcon = databaseManager.getFoundSet('contable','numcon')
	
	fs_numcon.find()
	fs_numcon.anio 		= vAño
	fs_numcon.mes 		= vMes
	fs_numcon.empresa 	= globals.gUservID
	
	if (fs_numcon.search() == 0)
	{	
        globals.DIALOGS.showWarningDialog("Aviso","Fecha inválida","Ok")
		return
	}
	else
	{
		if (fs_numcon.marca_cierre == 1)
		{
			globals.DIALOGS.showWarningDialog("Aviso","Mes Cerrado","Ok")
			return
		}
	}
	
	/** @type {JSFoundSet<db:/contable/limbo_cab>}*/
	var $limbo = databaseManager.getFoundSet('contable','limbo_cab')
	$limbo.numero 				= fs_numcon.limbo
	$limbo.provisorio 			= fs_numcon.limbo
	$limbo.empresa  			= globals.gUservID
	$limbo.hizo  				= globals.glegajo
	$limbo.total 				= total
	$limbo.dolar				= dolar
	$limbo.ejercicio_id			= $ejs.getValue(1,1)
	$limbo.fecha				= $ejs.getValue(1,2)
	$limbo.letra				= letra
	$limbo.moneda				= moneda
	$limbo.moneda_carga			= moneda_carga
	$limbo.texto				= fTexto
	$limbo.tipo_actualizacion	= globals.z_conf_asiento_apertura
	
	for (var i = 1 ; i <= asiento_cab_to_asiento.getSize() ; i++)
	{
		var $asiento_dtl = asiento_cab_to_asiento.getRecord(i)
    	if ($asiento_dtl.columna == "D")
    	{
    		var $columna = "H"
    	}
    	else 
    	{
    		var $columna = "D"
    	}
		var $limbo_dtl = $limbo.limbo_cab_to_limbo
		$limbo_dtl.newRecord()
		
		$limbo_dtl.centro          	= asiento_cab_to_asiento.centro
		$limbo_dtl.columna         	= $columna
		$limbo_dtl.cuentas_id      	= asiento_cab_to_asiento.cuentas_id
		$limbo_dtl.debe_dolar      	= asiento_cab_to_asiento.haber_dolar
		$limbo_dtl.debe_pesos      	= asiento_cab_to_asiento.haber_pesos
		$limbo_dtl.division        	= asiento_cab_to_asiento.division
		$limbo_dtl.haber_dolar     	= asiento_cab_to_asiento.debe_dolar
		$limbo_dtl.haber_pesos     	= asiento_cab_to_asiento.debe_pesos
		$limbo_dtl.impodol         	= asiento_cab_to_asiento.impodol
		$limbo_dtl.importe         	= asiento_cab_to_asiento.importe
		$limbo_dtl.importe_debe    	= asiento_cab_to_asiento.importe_haber
		$limbo_dtl.importe_haber  	= asiento_cab_to_asiento.importe_debe
		$limbo_dtl.leyenda         	= fTexto
		$limbo.ejercicio_id			= $ejs.getValue(1,1)
	}
	fs_numcon.limbo++
	
	databaseManager.startTransaction()
	var estado = databaseManager.saveData()
	if (estado == false)
	{
		databaseManager.rollbackTransaction()
		globals.DIALOGS.showWarningDialog("Aviso","No se actualizaron los datos","Ok")
		databaseManager.revertEditedRecords()
		return
	}
	else
	{
		databaseManager.commitTransaction()
		globals.DIALOGS.showWarningDialog("Aviso","Asiento creado con exito","Ok")				
	}
	databaseManager.setAutoSave(true)
}

/**
 * Callback method for when form is shown.
 *
 * @param {Boolean} firstShow form is shown first time after load
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"80396A9E-205F-481B-9F97-AC924A150B43"}
 * @AllowToRunInFind
 */
function onShow(firstShow, event) {
	fTexto = 'Asiento de Apertura'
	controller.find()
	
	tipo_actualizacion = globals.z_conf_asiento_cierre
	
	if (controller.search() == 0)
	{
		globals.DIALOGS.showInfoDialog('Aviso','No se encontraron asientos de cierre','OK')
	}
}
